{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 一.简介\n",
    "上一节介绍了硬间隔支持向量机，它可以在严格线性可分的数据集上工作的很好，但对于非严格线性可分的情况往往就表现很差了，比如："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import copy\n",
    "import random\n",
    "import os\n",
    "os.chdir('../')\n",
    "from ml_models import utils\n",
    "from ml_models.svm import HardMarginSVM\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*** PS:请多试几次，生成含噪声点的数据***"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x202a6f55a58>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD8CAYAAABjAo9vAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd4VNXWwOHfnj6TRkhAuqAoFlSkqGDDgqKCCqKIqCAqdsVrx4rY/QSxiw0bVkQRKxbEAigqKCAqKiCIEEggbfqs748TIslMSJkzJcl+n4fn3pyZOXs5yaw5Z5e1lYigaZqmNR2WVAegaZqmmUsndk3TtCZGJ3ZN07QmRid2TdO0JkYndk3TtCZGJ3ZN07QmRid2TdO0JkYndk3TtCZGJ3ZN07QmxpaKRvPz86Vz586paFrTNK3R+v777zeJSKvanpeSxN65c2cWLVqUiqY1TdMaLaXU6ro8T3fFaJqmNTE6sWuapjUxOrFrmqY1MTqxa5qmNTE6sWuapjUxOrFrmpb2xPsekYLjiWzoRaRwFBJcmuqQ0lrciV0p5VJKfauUWqKUWqaUmmBGYJqmaQCRsheQreMhvBKkBALzkc0jkeDyVIeWtsy4YvcDR4rIfkAPYKBS6iATzqtpWjMnEoTSKYC32iM+pGRyKkJqFOJeoCTGpqmlFT/aK/7pjVQ1TYtfpAAkFOMBgdCypIfTWJjSx66UsiqlFgMbgTkistCM82qa1sxZcoFI7Mes7ZMaSmNiSmIXkbCI9AA6AAcopbpXf45SaqxSapFSalFBQYEZzWp1JBJGymcQ2Xw6kc2nEil7xbjF1bQ0p5QbPKcBrmqPuFCZl6UipEbB1FoxIrJFKTUXGAgsrfbYVGAqQO/evXVXTRLJlivA/yWV/ZSh3xD/R5D7HEqplMamabVRWTcg2KD8FSAClizIvB7lPCzVoaWtuBO7UqoVEKxI6m7gaODeuCNrBiRSBuE/wdIaZd0pMW0Ef4LAdkkdQLwQXAyBb8B5cELaNZOIQPBHCCwESwtwHYeytEh1WFqSKGVDZd+AZF0FUgYqB6X0TO0dMeOKvS3wvFLKitG187qIzDbhvE1apPRxKH0clA0kiDj6olpMRlkyzG0o8B3E6naRciTwLSrNE7tIGNlyOfi/wpiA5YSSeyH3KZSjT6rDi4uIQGAe4n0XlBXlGgKOA/VdVA2UcoBypDqMRsGMWTE/AfubEEuzId73ofQJwPff/KHAN8jW61G5D5vbmKUl4ACqzyxwoSx55raVCL7ZFUl92x2HFwSk6FJo/TVKpaTydNxEBNl6Pfg/Aik3jnk/BM/pqOwbUhyd1tg16/sZkQAS+B4J/oxIDSPviWi37Cmi5+UGwP85Eik2tzHnMRDrtlVZwD3I3LYSQMpnEP1eAQQg+HOywzFPcDH4PqxM6gYvlE9HQn+kLCytaWi2iV18nyMb+yJF5yOFZyEF/ZO3ki2yKfZxZYXIVlObUpYMVMvnwdIGlAdUBljyULlPoSwtTW0r+Rpvl4X45wK+WI9UDHRrWsM1zvvYOEl4nTFTZPsPlpQjhaOg9Vco5UxsAI6+4JtF9PxcF1jbmd6csu8Drb6A0AqjTduejWbwSXlOQYqXGAO+VTjAvk9KYjKFysD4+FUb/1BW4wtY0+LQOD7dJjNu78MxHgmBf27C21eZl233wd7GBdk3Y4xBJ6BNpVD2PVH2vRtNUgfANQgchwBujD9XNygPKveRyvdKJIxEChvV3HzlHkTMj58ArmOSHY7WxDTLK3Yim4m6UgKQMESKEt68snWE/NlI6VQIfAvW9qjMsShH74S33dgoZYUWj1RMz1xgrER0HYey5AAQKX8NSh4w+qqVFfGMQmWOS/svL2Vth+TcC1uvN2ZGARBBtXhIT+XU4tYsE7tyHor43qk2cAUg4DgwOTFY26Jybm3w60WkYk6vw5gG1oQppcCxv/FvO+L7EIrvpLJLTYCy5xEsqKxxdT6/hFZCpBjse6FU9RWODSeRElDOGn8/FvfxiPMwYz0BVnD2M1Zaalqc0vuyJlGcR4BtL4zb+wrKA+4hKFuXlIVVV+JfiGw6Ftl4ALKhJ5Gt1yGR6l9STZ+UPET0AKQXyqchMQtHVXt9eD2RTYORTUORovOQjQcSKX8j/rgCi4gUDEQ2Hohs2J/IliuRSGnM5ypLJsp1DMp1lE7qmmma5xW7skLLaUZfu28WKBfKMxycx6Y6tFpJaCVSdD5VEpr3fSRciGr5VMriSonIv7GPS7ByhWJNRAQpHAPhv4DIf+sJiicitt1Qjh4NCklCq5HCc6kyRdM3BwkXoPJeatA5Na2+mmViB2MVm8oYARkjUh1KvUjZM0SPD/ghsAAJrUXZOiQ/JhEILkK87wEWlPsklGO/xDds6wbB76OPW7JBZe34taFfIPIP0TOT/Ej5Cw1P7GUvEP37CUDwJyT0B8q2a4POq2n10Ty7Yhqz0EpizuhRDgivTXo4AFJyB1J4HnhfAe90pPAsIknYBEFlXUOsqn9kXlP74GmkEIg1A0kgvLHhQYV+J3qVL8YAafjvhp9X0+pBJ/bGxrY3safJ+cHWNenhSHAZlL+B0fUgGFfAPih7Fgn9ldC2laMnquU0sPcBlQ223cFzDsqaj4h/xy+27xu7hg4uYwymoRw9MUo4VCMB4w4jBvF9RqRwFJFNJxEpfcQYdNW0OOjE3oiIeCvm2VfvPrAaA7/W/OTH5PsUCMR6JGpNgIgQKXuFyMb+RP7tTmTzMCSwKK72laMnlryXIfsOCP0N3heRLeOMVcX++TW/zpINmZdRZQAdJ1hbG+MtDY3HcyaobXPut3GB63iUtW3U8yMlU5AtV0JgvtE9VPoksnmIUflT0xqoUSV2kQASXI6EmuktrXd2zfPsPWclN5YKxkyOWF0aFqg2dVDKnoCSeyr6tiv6nQvHGKWF4yDhf2DrNRgFwkor/8mWC3d49WvJHIvKfQQch4NtH8i8GJU3E2XJbHAsypqPynurokZPFljaQuZlqJy7o+OOFEJU3SA/hDci3vhn5ySL+OcT2XwakQ0HENk8HPHrDdRSrdEMnka870HxLRgzGELGzIXcx1DWNqkOLWkk8C0xC2IpJyq0FOy7Jz0mXMdB6UMxHhAjuW37SQJQ9iSxNyWegmr5TINDEO+7xNw+TRT45oBnaI2vVc5DUc5DG9x2ZVPihcBiY9qsfR8subHek2oCS4yxEal+x+MD/xeQMTruuBJN/HORosupnKUV/NGYtZX7qCnvq9YwjeKKXYLLYesNICXGNDb8EPrFuNqT9NuMSSJbkPKXjdts/9fmVY60diRm/y3KKPKVAsrWAbInAE6gosgYLsj5P5R1u7LA4Y3UuMd5aEV8QUgJMVcSE0IiW4iUvURk8wgihecivk9M/5uJlM9CNh6EbLkEKRqNFByOBOvw32TNI/Z+nhZI0MYrZpPiu4leS+BDiu9KTHsSQQLfId73kPC6hLTRFDSKK3Ypf4HoftwwhP8xdiq3R22xmjISWIIUjTbKE+BDyj1g6w4tn417hajynIaUP1MtP1qNmuuOg+I6dzwsnqGI6wjwzzPicR6OslSbbmjNh5oSqrVzXO0r5+FI+YsxCoUp8L0FoTVsSz4SXARu82qeS2glFN9E1YJyZUjhaGj9JUrZa36xbR+w7AThVVT9pSogh8iW68C+B8o9tLKEQjoRkYp1ADHUdDye9sLrkMKzK0qCKOPO3X0KKvtWvTlJNXFfsSulOiqlPldK/aKUWqaUusKMwKoI/0vMKxtlqbkEbgqICLLlsoq7im3L3MuNvuTyV+I+v7K2QeU+A5b2GFfIDrDvh2r5csproyhLrjF/3T0oOqmDsVTfM5Kqg5UALnCfQmTrrcbMkNLHkPrW67H3Bkd/YLuqiMptlIcIraVq0q2oeW7S1Z6Uv07suwV/RamAmimloMVDRH8Mw+B9AXwzoWQyUjAACa02JV4zKaWgps1aErCJixRdAuF1xmdq2527d2ZFpVQT2xExisqZNIAtEkK8s4kUXURky1VJGYMw44o9BFwlIj8opbKA75VSc0TEvOLmjkMh8ANRt3wSNKatpYvQSpBY9dR9xh9gxqi4m1CO3tDqs4oBSGdKZsI0lMq6BrF4oOw548NpbQeuoVA8AeOOLAyBH5DylyBvZp33gTUS5GTwf1qxzZwN5R6KeN8BYpRaUFYILAJ3+/j/oyKFxK4USt1q6/s/x/gYVj/Htp99IAGkeAKq5bMNDjNhMi6AkslUHTtxQ8ZFpjYjobUQ+oPoCzwvUv4Syn2SOe0EFiFbxxu9AQjiPBSVc0+DC7OJhI0xh+APFXeUyugOzDgXS9blpsQcS9yXeSKyXkR+qPj/JcAvgAmfmP8oz3DjVr5K/7IbMsak12YRStXYjWzmcIZSCmVtn7SkLqE1RIrvJFJ4PpHSqUgDNwNRyoIl8zJU6+9RO/2Eyv8UvK9hJIVticwPkSKk9JF6n1u5BmDJfQhLi0ko5yFgySf2tYsyNsU2gXIeQZU7hW0kCI4Daj9BYCHGXq47EjG2TkzD8STlGQWZF1aMrTiN/828GOUZaW5DFdU7YzLryjr0N1J0bkXXWAAIgv9Lo/REQ/k/h8CP23UTCuCFsqlIuIaSGCYwtY9dKdUZY/9TU+81lCUT8mYiZdPA9zFYclAZo8E5wMxmKnnLfHz11kI2/1PE3v260f2QPerWh2fd1bgFjVRfAeoG97CExJpoEvgWKTwfo7shZJQuKJ9Wryvq6oz30oGE10NkS4xnhE2pi2+MSbxM1EpQ5QKHSZt4u46B8hcguILKq1blBvfZVWZsSXgD+D8DFDiPRFlbGw9YOwELqPGqv5I9LfuRlVKozIuQjPOM36WlxY7HFRrKtitG92P1OzAHuAaa0oSUvwRRxeOCEP4DCS5H2feq/zn9nxH7rtFmrF1wD2lQrLUxLbErpTKBGcA4EYnauFMpNRYYC9CpU6f6n9+Sg8q6ArLM78Lf3p8/reaqI24lFAwT9AWxO23s1bcbd8y+Hrtjx3+wSinIfcQY4JEQ4Dems9kPQHlOS2jciVC54XL1edaRMFL6ECrnzvgaUB5izwoBsBIpvg+UG+U+EWXbuf6nt3VBcu6H4usxBiQjoFoY2wLWYRNsCa1Fyp+D4DKw7Y3KGG3U0t++DWWHli+C923EOxssmSjP6SjnYZXPiZS9CiV3VsSggDuR7JuxeE4DzwjwvsmOE7sD3CfU+78/mZSyg7VVAs9vhRb3VkytDFX8c4O1DSrjHHMaCf1F7PESq1GuowGJHZVtvD7q96tANXy9RK3NmnF7p4yv6NnARyIyqbbn9+7dWxYtim/FYSKICOfscQXrfl9f5bjT4+CcO0Zwyri6bf4skTLwfwzhTeDoBfb90/JqqzYSLkAKjiDmylJLPpbWOx4crIvI5tON/sfoBjBuW62ADbJvxeI5pUFtiBiLoVCeim0Ba/9dSHA5UnhGxRzzkBGDcqBaTq/XlZuE1iKbjiO6u8UJLSbB1htBfBWPC8Z/t6eiTQsoAeuuqJbPxxyUbm4ktMqYiBBeB45DUZ4TTSt3HCl9EkofIdbvSuW/H/WlXrd4VyKbhhI1PqiyUa2/rvc2nEqp70Wk1h154r5iV8an5Bngl7ok9XS2/s8NbFq7Oeq4vzzAh89+VufEriwZCbvFSirlpsZBA5VhUhs1TePbdiVfcXVWfBviOqpBg1hKOaCeu1NJ8e3VNmIJGdPrim9H5b1a9xP5PyL2exiBLVcS/aVph7y3UVJoDMbbdgV7j0Z5YZAIytbZtKmqUef2nI6UPw+REP9dYbvANaBBSR1A2boi2bcaEwSUDeNvwV5x15i4vZXN6Io5GDgL+Fkptbji2HgRed+EcyeViNS48b1E0m/gKtGUJRNx9IPA11Ttp3abV8KgrvOdlQ38X4G7bl+ucQsurt/xmkiI2N1NEWKXYgiDb6bR7djA0sFawyhLDuS9hZQ+CL7PwZIB7jNRcc5ms3hOQVzHQuA7UE5w9EnMOMR24k7sIvIVNabDxqXdrm3I3akF//5VtWyr0+3gmNH9UxPUdiRSagzAiR+chyalnIJqcV/FhhR/Alaja8I90LxZD7Y9ILyGmvvatw8mMRt9x27LY9SciTpez9t+11EVt/fVB+W29bdXF6phQDl5JLDYuHINbwDnESjPiLjq5zQmytoGlXMPmLweTFkywRVH1dB6ahQlBZJFKcXNr/8PT7Ybl8e4TXJnuujaswsnX3pcSmMT/5fIxoOR4luR4juQggFESqcmvF1lyUXlvYVq+Yoxn7fVR1hy7jUGs8w4f+bFxC6TUF0EHIfV/jSzuE8nZq139+n1Oo2ydYXMsRXnsmBcpbvAc2YNL/CgXEfWO1yzRMpnGIP/vvchuAhKH0Y2n4hEouZDaGnMlMHT+krXwdNtSreUMfe1b9j8TyF79etGrwH7YrGk7jtQImVIwcFEb77tQuW9grLvnZK4zCKBH5DiOyG0vKKuejcI/ohxRWsBIqjch1DO/smLSQLIlquMaZfbCnU5+6NaPNCg0hASXIH4PjB+cA5ARdYhZc9BcCmV/ezKA/Y+qNwn67WSWCRs3OZHNoGjJ8rart7xGefxIRsPivF35oTMC7BkXtqg82rmSdrgaVOU2SKDQRckZo58g/i/IPZtewDxzkx6YpdIIfg+BUJGsotRZ7w+lKMnKn9G1TZCf0NgHsbg1dFJr5WilAOV+7BREjj0F9i6NDhhAij7Hij7Hkh4A7J5OBLZgjGN1AFkGAnZPQRcx9UvqYfWIIVngRRXjNGGEM9pqKyb6j/gGlxB7Jt4v/H71om90dCJvVEI1lBAK2L0tydRxPsBbL2uYpWtAHchWeOwZJxrajvK1hFs8fXji38eUvKAsZLQ2gmVeSXKdSQiQWOxm/cNY4Wo+wRUxoUx+5GVtZ1R+sAkUnwLRDZQZaUtEWODjwYMDEvRRRXn226MovxNsPesnPsuYszyqHUWhiUnxgKdbY+l0QpvrVa6j70xcBxC7H1O3SiTVt3VhUSKYOu1GPVLvMb/4oeSKUjw96TFURfi+xwputTYlUi8EPoV2TKOiPcjpOhiKH3YSPiRdVA2DSkcbsx3T2RMEq6ogFn9dxmEbd009Tlf6K+KfVRj10+RSDmRrTcgG3ogG/YjsulEJLCkxvMpWxewdSF6to477pkhWnLpxN4IKGseZF2PMQBnxVi15jY2snD0S14gvs9qmJkSRHzvJi+OOpCSe4lVJ5ySiRD4ttpjAQitMzblaEzEu4P6KaXI5lOM4nMEgAiEViBFo5DQmhpPqXKfNObOK3fFykgnZF5SZSWtlv50V0wjYckYiTgPNCoWRrwo1wBwHJDkhSs76hKKtRQ7hcI1lLmNbCT2LJxyJLAItYOl+yJiVJAsf9VYLeoahPIMrfNgqlJWxHEwBL6i6lW2DZzH1ukcVdh2J/ZH2FHx31/9iw2jUmT586jsm2PHaG0Dee8am59ECsG+j7E/rNao6MTeiChbV1TWVQlvR0KrkdIpxkwLSytU5gUo17Hg7A/Eqg/jSmqXUJ1YWkNkffRxlYXxRVS928VZsUNVzaTkzop++YraOaGfEd870PLFOtWeAVA5E5HNpxpz5KXcWMFryUNlX1en11c5l7JBzr3IlnFUrtBVbhBFzC0UjaChlm4zpRTY96x3PFr60F0xzYhIBPF/TaTkAaTsBWN2S/XnhNYgm4cY85gjGyC0FNl6LZGyZ42ruayrMarsWTH+fNzgORXl2C/J/zW1yLyM6E093JB5RUU5hGp/+sqG8pxc4+kktAbKX6u6S5N4jT58/6d1DktZ26JafYrKnggZlxprA/I/aHD5aeU6EpX/jrES2DkQMm/EuFKvaRqzA9Ltd6WZTl+xNxMigYqC/0tAyhFcUDoJcp9COfr897yyRyvmMW/XVSBeKH0I8YzEkjEKcR5sVDIkiHIek35JHbB4hhERP5ROMa6OVYbRV+w5C5xHGFe5oV8BZVQIbDFpx8k18B0xr4OkHPHPM+5o6kgpJ7gHm7ZcW9m6VNZPERGk5DZqXMmrnMZ7kCYk+BPi+6xiIsAJxh66Wtx0Ym8mpPwNo+B/Zb+rDwRkyxXQ6qv/5k4Hvid2UlDG3qH23Sq6hMYlJ/A4WDJGIp4RFV0env/+G20dUfkzkHABEAJLm9rHKiw5oCwxLoRtCdkGrqGUUojzGKO6aPUyBpa2qJbTKmvBi0jFTlzWpJSn2J6IGFM/vbMwpnxakdJHkOw7sHjM2Q2pOdNdMc2FdyaxB9O8xkDZNjXN2ZYgWNMngdWVUhaUJTPmoh9lbWV0jdRlANp5GBCrcJMNlWabqKicW8C6c0WXk6OiXPEeqPzZxpRGKsoSbzoWKTjOKE+xaTAS+iN5QQYWVuxV6sW4kAgCfii+qcE7dGn/0VfszUWNqxm31QCveFrGhUhgMVW/BJxGMahmvEhFKQe0fB4pGgtSQmW9+Oz7ULb6bxyTSMrSEvLfMzbTDv0Jtt3AcVDlF5hEtiKFZ1Ytchb6Ddl8BrSel9BystuIb3bV8YrK4G3g/zJ5VTybKJ3YmwnlPg0J/krUbAmVY9Rm2fajsx+SPQFK7gICIGGjHnW8uyU1Acq+J7T6AkJLjRW/9v0aVDcmGZSygPMQ4191vvdirDAVIGDM5U9KUq1YjxFzkFd3JMRLJ/bmwj2kYmPdryo+1HZQFlTuo1FdERbPEMQ9GMLrwZLbbEq21oVSFrDvm+ow4iLh9cTulvNXlCdIPOU+GfG+TdSFhoQrur20eOjE3kwoZUXlPooEf6qYn55nVBm0xN4JSSkbNHDXGC1+EikzFhlZ25jeBabsPRDlia7iqOxgT84MJ+XYH/GcDeXT+G8LRIGcSfpCwgQ6sTczyr5vo7/ibMpEBCl9CMqeMfqbJYC4jkHl3G1e37ezP1h3gdDv/Le/pwvsPcDey5w26sCSfRXiGWpUL1UucB3TrMdxzGRKYldKPQsMAjaKSHczzqlpzZF4Z0DZs2ybjgqAbw6iPKicO0xpQykr5L2MlD0D3rcBK7iHoTJGJX1v1f8Kj2lmMmuUYhqQZmvKNS01IuUziGw8jMi/3YgUHEHEW4/tf8umEl0OwA/ed0ytPqmUG0vmpVhafYKl1UdYMs9P24Fgrf5MSewiMg+IXp+uac1MpPwNKL4dIv8CAuF1sPV6xPdRHU9Q08dIYu/BqmkxJG1ekVJqrFJqkVJqUUFBQbKa1UwmEjA21daiiAiUTib6ittnbPhRF/ZexNwty9ISVG6cEWrNRdISu4hMFZHeItK7VatWyWpWM4mxacP1yIaeyMY+RAoGIoHvUh1WmglBZHPsh8Lr6nQGlXW1sVK0ykfThcq+Nen931rjpVcCaHUiWy4D73sYmzaEIfwnUnhecpehpz0bWPJjP2StW3ErZd8NlTcTXCeBtQs4+qNaPo9yHWVinFpTpxO7VisJranYdaj6/qoBpOzZVISUlpRSkDmO6HLBrnrV0Ve2zlha3GsMaracinLsb2qcWtNnSmJXSr0CzAe6KaXWKqXM3dlYS63wWog5YyIM+oq9CovnVMi+FSxtMEoCd4Sce1GuY1IdmtaMmDKPXURGmHEeLU3ZuhrLzaPYjUUtWhUWz1DwDE11GFozprtitFopa2twn4ixmXblUVAuVMboFEWlaVpNdGLX6kRlTzS2lbO0Mep8O49E5c1I+gYNmqbVTteK0epEKSsq81zI1MMnmpbu9BW7pmlaE6MTu6ZpWhOjE7umaVoToxO7pmlaE6MTu6ZpWhOjE7sWpaSolJ+//IX1fyVn/0tN08ylpztqlUSEaTe/yhuT3sXhtBMMhNjroN257a2ryciJvTeqpmnpR1+xa5U+m/4Vb015j6AvSNnWcgLeAMu+XsG9ox6p9bVFG7awevnfhIKhJESqadqO6Ct2rdIbD8zCV1a1JkwwEGLRR4spKSolKzd69/iSolLuPH0yP837BZvdisVm4dKHz+XokYclK2xN06rRV+xapeJNJTGPW6wWSreUxXzstqH3s+SL5QT9QbylPsq2lPPgBVNZ9s2viQxV07Qd0Ildq9TrmH2x2qL/JNyZblp3it5AYv1fG1jx7UpCgardLwGvnzf+752Exalp2o7pxK5VOuvW08jI8WB3GD10SimcHgeXP3Y+Vqs16vmF67dUPnd7IrBh9SbT4lr9y1ruG/0IF/S4mvvPeZQ1K+q2zZymNVe6j12r1LpjPlN/msSMybNZMncZbXdpzalXnUi3Pl1jPr/LPp2irtYBbA4bvQbsa0pMyxf8xnVH307AHyQSjrBq2d/Me3M+9396K3scsJspbWhaU6NEJP6TKDUQmAJYgadF5J4dPb93796yaNGiuNvVUm/6XTN45a6Z+MqNQVer3Upmiwye+ukBcndqEff5L+5zHb9//2fU8W4HdOWRBXfHfX5Ni0dxYQnTbn6VeW8uwGqzcuzo/oy86RScbmdC2lNKfS8ivWt9XryJXSllBX4DBgBrge+AESKyvKbX6MTetHw1cyFv/N8stmzcSu9jezBi/FDy27WM+7wiwrG24cT6G7VYLXwUfC3uNjStoQL+IOfv8z82rtlUeefqcNnZrdcuTJ430dgD12R1TexmdMUcAKwUkT8rGn4VOAmoMbFrTcshQw7kkCEHmn5epRSebDdlW8ujHvNkV98wOvXC4TBfvD6fT16ah91hY+CYIzloUK+EfMC11PtqxgIK/91SpTsy4Avyx+JVLPt6Bd0P2TNlsZkxeNoe+Hu7n9dWHNO0uA2++FicnqobaTs9Dk6+7LgURRSbiHDrkPuZPPYJvvvgR7555zvuOuNBHrrk6VSHpiXIL9+uxFfqizoeDkVY+eOq5Ae0HTMSe6zLkah7Z6XUWKXUIqXUooKCAhOa1ZqDUbedxuGn9cPutBszdlx2jjj9EM68aViqQ6vix8+WsmTusioLvHxlfj5+fq6exdNEddi9LU5PdF+63WGjTZfWKYjoP2Z0xawFOm73cwfgn+pPEpGpwFQw+thNaFdrBmx2G9c8ewnn3XMm6//4l3Zd29CiVU6qw4ry3Yc/xrx6Q4Qf5vxEpz30TWxTc9QZhzLt5lcJeP1zNTxwAAAgAElEQVRsGwayWC1k5mbQZ2CPlMZmxhX7d8BuSqkuSikHcDowy4Tzalql3NY57NW3W61JPRwK8/Xb3zL9rrf4+u1vCYfCSYkvq2Umdmf0dZLVZiUzVxdQa4oyW2Qwed5Eduu5Cza7FZvdyr6H78WDX92B1Ra97iOZ4r5iF5GQUupS4COM6Y7PisiyuCPTtHoq2riVcQffSNHGrfjL/DgznLRolcOUb+4kt3Vir/KPPvMwpt8xI/oBpTj45D4JbVtLnc57d+TR7+6lbGsZFqsFd2Z6DOqbsvJURN4Xkd1FZFcRudOMc2pafT16+bNsWL0Jb4mPSETwlvjYuGYTj17+bMLbbt0xn/GvjMOd5cKT7caT5SY7L5O73h+fsA/793OWcFHvaxmUeSbn7n0lX761MCHtaLXLyMlIm6QOJi1Qqi89j11LhOPdIwj6Y6+E/cD3SlJiCPgCLP36V6w2C90P3iNht+SLPl7CbUPuw+8NVB5zehyMe/ICXVmzCavrPHZdK0ZrMlJwjRLF4XLQ86h92O/wvRPaz/rUtS9WSeoA/vIAT1/3UswFXVrzohO71mT0HdwrKplabRb6Du6VoogSZ+1vURPPACj6dwtBfzDJ0WjpRid2rcm49OFzyWufizvLBYA700Veu5Zc8tC5KY7MfPkd8mIez2iRgd1pT3I0WrrR1R21JqNlm1ym/foQ37z9HauXr6XTnu05eMgB2B1NL9GNmjCcSec/gb/8vwVRrgwnI8YP0SUMNJ3YzRSJRPjuw8V898EP5LTKZsDZ/WnTObUr0Jobu8PO4af1S3UYlUSEUDCEzW4zNeEeOeIQ/OV+nr3xFUoKS3BnuhkxfijDrhxsWhta46VnxZgkFAxx4wl3s3zBb/hKfdgcVqxWK+Onj6PfSXoec3P02Stf8tR1L7F5XRFZeZmcedMwTr7sOFMTvIjgK/Ph9DixWHTPalOnZ8Uk2WfTv2L5/F8rl5WHAmH83gD3nP0QAV+glldrTc1XMxcy6fwn2LS2EBGheFMJz46fzltT3jO1HaUU7ky3TupaFfqvwSSfvvxllQJQ2yilWD7/txREpKXScze9gr+86he6r9zPSxPf1NMRtYTTid0kDlfsAToR0bMUmqENq2NXMPWWeCt3m9K0RNGJ3STHnXcUrozoEp5Ot5M9Doy9Z6jWdHXYrV3M45m5mbhilHrVNDPpxG6SvoN7c+zoI3C47DjdDtxZLjJyPNzx7vVYramt9Kb9R0RY8sUyPn5+Ln/9vDph7Zx7z0ic7uobhDg5964z9HRELeH0rBiTrf19PT9++jPZLTM5aHCvhG1qq9Vf0YYtXHXEbWxauxkRQUTocUR3bp1xdULmun/7wY88dd1LrP3tH1p1zGPUbcM5auShprejNR9J28y6IZpyYtfS1/jj7uSHT3+uUqPd6XYwYvxQRt54SpXnRiIRfv/+TwK+IN0O6IojDcZJRITl83/jm3e+xel2cuQZh9Bh99hdPlrTpBO7pm2nvMTLKa3GVNl4eJvWHfN5efXjlT+vXPwXNw++h7Li8spuk2unXcrBJx+QtHirExEmnf8Ec1/9Gp/Xj9VqxWq3cvGDoznh/AEpi0tLLj2PXdO2Eyuhb7N9lcSAP8h1A25n07pCvCU+you9lBd7uXvkFNb/uSEZoca0ZO4y5r72tTGjRoydogLeAI9d8RxbNxWnLC4tPcWV2JVSpyqllimlIkqpWr9FNC1VsvOy6LBb26jjVruVg4f8dyX+3Qc/EgpEb6cXDoX58LnPEhrjjnzx+jdV6sJsY7VZ+e7DxSmISEtn8V6xLwWGAvNMiEXTEuqaaZfgznJXrjlwZThp2aYFoyeeXvmcksJSIuFI1GtDwTBFG7YmLdbqbI4aas0osNljz7pa9PESbjvlfq4dcDvvP/UJAV3Ot9mIqwiYiPwC6OlbWqOwe69dmfbrFD545lP+/vUf9u7bjaPPOqzKlmb7Hr4XkUh0YndlujjguP2TGW4VR595GB8882nUatZIWDjg+J5Rz59266vMmDS7cjX08vm/8eFznzHpi9ux2XXtv6ZO97FrzUrLNrmMvHEY179wOYMvOjZqn8p2u7aJWmzm9Djp2qMzfQenrrexW5+ujLh+CA6XHYfbgSvDidPt4KZXr8STVfW/YdM/hbx+36wqJS785X7++nkN895ckOzQtRSo9atbKfUJ0CbGQzeKyDt1bUgpNRYYC9CpU6c6B6hpyXbJlDH0PGpfZj/5Mb5yP0edcSjHjO6f0K3u6mLkTcM46szD+O6DH3G4HfQ7qQ9ZuZlRz/t53i/YHbaonZR8ZX7mz/qOI0ccUqf21v6+nvefmsOmtYX0Gbg/hw/vlxbTPrXa1ZrYReRoMxoSkanAVDCmO5pxzsZo66Zi3pz0Lgtn/0BO62yGXTmIA09oelu3NWZKKfqd1Cctyy236dyawRcdu8PnZOZmxDxusVpo0SqnTu18M+s77hrxIKFgmHAozPx3F/HmpHd58Os7cGe46h23lly6sy2JigtLuLDnNWwtKCboN6bf/bLgd866ZRjDrz05xdFpTUXPo/bB4XZQXuKtctzusHH82Nqv00LBEPef82iVaaC+Mj9rf1/Pu49/xGlXn2R6zJq54p3uOEQptRboC7ynlPrInLCaplmPfsjWTSWVSR2Mvs8XJrxB2dayFEamNSVWm5X75txMfvuWuLNceLLdOD1Oxj05li7da+8G/WPJasKh6AHkgDfA3Ne+SUTImsninRUzE5hpUixN3rcf/EjQFz3lzO6wsfLHVezXf+8URKU1RV322ZmXVz/Oim9X4ivzs1ff3etcVdLlcSAxZgaBsUG4lv50V0wS5bfPQ6nfqV7FIRQM0WKnuvV9alpdWSwW9jpo93q/rtOeHcjvkMe639ZX2RTEleHkxIsHxh1XOBSmvMRLRo5H7/yUIPpdTaJTrhyEo1opV6vNys57dWTnPTukKCpNq0opxcRZ15PXLhdPlht3lgu7y87Ac47gsGEHNfi8IsLLd7zJ0LxzOK3t+Zy607nMnjrHxMi1bXQRsCT7aNrnPHbFcwCEQmG69ujMbW9dQ+5OLVIcmaZVFQ6HWfzZUrZsLKb7IXuw086t4jrfK/fMZPodM6rsIOX0OPnf1As48gxdzrgudHXHNBbwB1m1dA3ZeVm06dw61eFoWsJFIhGG5p1D2dbyqMfa79aWab8+lIKoGp+6Jnbdx54CDqed3XvtmuowNC0mb6kXEaJWtMYj4AviLfXFfGzTus2mtaMZdGKP04+f/cxj46axevnf5ORncdq1JzHsysFpUT+nuLCEdx75kO8+/JH89nkMHXcC3Q/eI9VhaWnq31UbuW/UIyxf8BsA3frsyrXTLqV91+iqmPXldDto0TqHwvVFUY/p8SXz6a6YOCyf/yvXDri9SmEmp8fJKf8bxDm3n76DVyZe8eYSLtj/amPevC+IUuBwO7j04XMZeM6RKY2tKRERfv/hTzatK2T3XruQ3z4v1SE1SMAX4KxdLmHLxq1EIkZOUBZFTl4WL/71mCkbcH86/Usmj32i6ufF7WDiu9ez/5H7xH3+5kBvtJEEz9/6WlS1PX+5nxmTZuP3RtfOTqY3HphlrHCtmDcvAv7yAI+PmxazfOu8N+dz9m6Xcqx9OGfucjGfTv8y2SE3OkUbt3Lh/tdwVf9buffshzm762U8dOnTpOJiKV5fv/0d3lJfZVIHkIjg9wb40qTCYUedcSjjXx5Hl3064cl2s+eBu3Hn++N1Uk8A3RUTh9XL18Y8rhQU/ruFtl12SnJE/1n43g9VVrhub9XSNVX6+Oe9OZ/7Rj9S+SW1YVUBk8c+QSQcYcBZhycl3sboztMns3r52ip7qM6ZNpfde+3KwHOOSGFk9ffvXxurlBDYxlvq49+/NsZ//lUb+fLNBYRDYW589Urd/ZJg+oo9Dp32bB/zuAi0bJPa6YstWsde8BQKhcnOy6py7Jnx02PceQR49sbpCYuvsSvauJXl83+tktQBfOV+Zj70Xoqiariu+3fGWW2NBRgrTXft0Tmuc8+eOodz9xrHcze9wrRbX+Pi3tfxwoTX4zqntmM6scdh1ITToz4MTo+TU8adgNMdf59kPE65chDOav2iVpuVrj06R02x3LAq9hXZprWFMTed0MBX6sNijf3xiTWlL931OmY/2nVtg327srx2p43WO7fiwBOiN/Koq03/FPL4uOcI+IIEAyHCQWOv1tfve4c/f1ptRuhaDDqxx2Hvft2Y8Pa17Lx3B5RS5ORncfZtpzLq9uGpDo0Dj+/JWbcMw+FykJHjwelxsGvFYqjqWnXMj3mOvHa5esl3DXbq3IqMHE/UcZvdmpblfmtjsViY9MXtnHjxsbRonUOLVtkMumAAU76aGFcd+vmzFqFi/A0FAyHmvTE/npC1HdB97HHqNWA/nv55MiKSFlMctzf82pMZdOExrPzxL3J3akGnPWJ3HY258wweOO/xKpslOz3OtPiCSqVwOMySz5exeX0Rex60e5XNsC0WC1c/czEThj1AKBAkHIrgdDvIapnJiBuGJiymXxf9wWfTvyQcCtN/+MHs3a+baX93niw3Fz4wigsfGGXK+WDbtpk1DCab+HEp/LeI9X9upF3XNuTW0A3ZnOjpjk3Iwve+59V73mbTP4Xs139vzrx5WJ1Xtn7y8jyeG/8KG//eRH77loy6fXiznha5/q8NXH3EbZQUlYJAOBzh8NP6cvUzF1e5i1mzYh3vPPIB//zxL/sftS8nnH8UGTmxN7qI1wsTXuf1+98h4AuCGNNXjxtzBJc8dG7M50cikZTfcW1eX8TZu15ixLwdp9vBwwvuoss+O8d1/mAgyP+NeYwvZyzE4bIT8Ac5euShXPHEWKzW1O54lQi6pEAzM+uxD5l67UuVV90WqwV3losnfri/XmUL0vHOIxUu6nUtfy5ZVWX6nyvDySVTxjBwTPK/8NatXM/Yfa+KTpAeB5PnTWS3nrsAxu/v9fvf4bX73qGksJR2Xdtw0aTRHDTI/F26/vnjXz55aR5lW8o4cFBv9j+ye8y/nQ+e+ZRHLnsGESM+i9XCGTcMYeRNw+KO4clrXmDWYx8R8G6/lsTB6dedzJk3nxr3+dONTuzNSMAfZFjrMXhLqi7ZtlgtHDPqcK56+uIURdY4bVxTwDl7XBGVRAG67t+Fx7+/L+kxvTXlPZ6+/uWofUwtFsUZN57CqAlGt9nzt73OG/83q2q3mtvBHbNvoMcR3U2L59PpXzLp/CcIh8KEg2FcGU56HbMft7xxVcy7hI1/b+KrGQsJBUP0O6kPHXZvF3cMIsKJ2WfjK4suVZCTn8WbG5+Nu410oxcoNSPr//g35vFIOMKSucuTHE38Vnz7O9cdO5FhO53L5X3Hs+jjJUlt31ceqHHGy/YJM5nsTjsWa/TVsMVqqSwFHQwEeXPSu1Ex+r0Bpt3yqmmxlJd4mTz2CQLeAOGgMd3TV+bn+zlLmD8r9gVb6475DB13Aqddc5IpSR2MxF7T76Nsqzfm8eYi3q3x7ldKrVBK/aSUmqmU0rVnU6BF6xxCgXDMx1p1bFxL3Jd98ytXH3kbP8z5ia0Fxfyy8HduG3ofc1//OmkxdNi9bcwCWHaXncNO65e0OLZ3yNADozZoAbDYrPSviGlrQTESjj09de1v602LZfHnS2POlPGV+vksiSuWLRYLu+wXu49+jwO7Ji2OdBTvFfscoLuI7Av8BtwQf0hafeXkZ3PA8ftXmYMMxsyW068fkqKoGmbqtS/GXCz15FUvJG2pvsVi4boXL8flcWJzGBPHXBlO2nRuzalXDU5KDNXlts7huucvxel24M504cp04XDZufThMbTdxVjhnNMqG4st9kd6573MW+lpd9Q8mc7uil7klEiXPXIeTo+z8g7LYrXgynRx8YPnJDWOdGNaH7tSaggwTERG1vZc3cduPm+pl/tGP8rC937AZreiLIrz7zuLQWMHpDq0ehmcdSa+sujba6vNwlubp5laSrY2G1YX8P5Tn7BhdQE9j96X/sP74Uhy4qqudEsZC2Z/TyQc4cATepKTn13l8ZibWbgd3PPRTXQ/ZE9TYgj4g5zW5ryohViuDCcTZ11val9+Xaxe/jevVSx42q3XLgy/9uQqU1ObkqQPniql3gVeE5GXanh8LDAWoFOnTr1Wr9arzhKheHMJWwqKabtLa+wOe+0vSDOjd7+MdSujxwzcmS5mFk1rklPYzCQivPvEx0y/6y22bNjKznt34IL/G0XPo8wttLXki2XcPPgewJgKighDrziBc++u9bpOi4NpiV0p9QnQJsZDN4rIOxXPuRHoDQyVOnxT6Ct2rSZzXviCKRc/FbVYKh1KIWtVlZd4mT9rEeUlXnofs19ll5CWOKbtoCQiR9fS0ChgEHBUXZK61jiFw2G+ff9HlnyxnLx2uRw98tCE7NM64OzDKS4s4cUJbxAKhgDFSZccy9m3Nr05yY2dJ8vNUSP1XqXpKK6uGKXUQGAScLiIFNT1dfqKvXEJ+AJcfdQEVv28Bm+pD4fLjsVq5a73x7PPoeb021YXCoYo2rCVnPyslPdra1q6SNaep48ATmBOxYqzBSJyYZzn1NLMrMc+4s/FqyrrdRsLd4LcOWIy09c8kZBl6za7jVYdzJ2qWby5BItVoZTCleGKq7hVsoXDYRa+9wPfvP0tGS0yGDjmSLp075TqsLQ0FVdiF5HmPVm0EVqzYh1zX/+acCDMIUMPrFyKviOfvPhFzE0Yyoq9rF6+Nu0TzB9LVnHv2Q+zevlaIuEIKHC6nQy57DhG33F62g/IhsNhbhp0N0u/XoGv1I/FauG9J+dw8ZRzOP68HfaUas2Uru7YjLz10Hs8c8N0wsEwEokw48HZnHjxsYy97+wdvs5qj/1nIhFJ+6ve4s0l/O/wWygv3m4lohgrSGc+/D7BQMjUaoaJ8NWMhSz9akXlNNBIOILfG+DRy5/j8FP7JqzomNZ46ZICzUTB2s08c/3LxjLwUJhIRPCXB5j12Ef89v0fO3ztCecfHbVpBxj12jt2M2d5eKJ8/MLcymXv1fnLA8x+4uOU709bmy9e/ybm3P5IJMJLE9+MuYet1rzpxN5MLJj9PcoSXWsk4Avy1VsLd/jaY8ccQZ+BPXB6nNiddtxZLrLzMrntrWvSvhLkut/Xx+xGqqQUWzeVJC+gBnBluoj1NocCIWY9/jGjdruUTes2Jz8wLW3pxN5MWK0WVIydDSwWVWt3itVq5dY3r2byvNs5/94zueqpi3jl7yfTvm8dYK+DuuHKqHmbQqvNQu5OORULez5iZOeLOCFjJFccfCPL5/+axEhrdvx5R+GoYavFgDfA5nVFXNb3Rt5/+tMqK0615ksn9mai70l9Yu5farXb6D+8boWtduu5C0MuP57DT0v90vq6Ovy0vrRs0yLml5fT4+SsW07F7rDz0h1v8uTVL7JxzSYC3gDL5//GtQNu5/cf/kxB1FV1P2RPRlx/clQtoG1EhE1rN/PYuGc5r/uVbN1UnOQItXSjE3sNwqEwbz/yAWP3u4oxe41j+l0zGvXVUG7rHK565iIcbgdOjxOH24HDZWf07cPZea+OqQ4vYRwuBw8vuJtBFw4gq2UmNqcNm8NGu65tuOLx8xn2v8EEfMbmytVLwAa8AZ6/7fUURV7VyJuG8eKfj1YWJYvFXx5g87pCXkiTmLXU0Rtt1OCWk+/lh09+rvywO1wOdt6rPQ8vuDvtZ4LsSNHGrXzz9reEgmH6Du5F606tUh3SDgX8QX6Z/xsWq4W9+u6ekPd+3cr1XNTzWryl0Rs25HfI45U1T5jeZkPdO+ph5r76NaEaBoQBWrZpwWv/PJXEqLRkSdYCpSbpt+//qJLUwVh9ufa39cx/dxGHDDkwhdHFJ7d1Dic0koqPC9//gbvOeND4QcDmsDFh5jWmVSncpmXbXMKh2HXMO+yeXlUCL5o0mhULf2fTP0X4YnwRAThcja/4m2Yu3RUTw/JvfkNi9Ed7S338PK/x7UjUGG36p5CJpz5AebHX+FfipXhzCeNPuIvyEnN3x3FnuDhh7NE4PVXHDZweB2ffepqpbcUrOy+Lp5dO5oaXLqftLjtFzXRyuh0cf75etNTc6cQeQ1673JiLchxuB6065qcgoubns+lfVtlIupJQ6/TMhrjggbM55cpBuLNcWKwW2nRpzU2v/i9htXDiYbVZ6XdiHyZ/OZG2u+yEO8uFK8OJ0+Ogx5HdOfXqE1MdopZiuismhgMH9cLpsuMr9VbZjsxqtXD0WYelLrBmpGRzadTGzWAUBystKjO9PavVyjkTRzBqwnBCgVCjmPWT1zaX51ZMYcncZWxYVcDuvXdll31jbxUHsGrZ3/y5ZBXturahW5+uab8GQWs4ndhjcDjtTJp3OxOGPcD6PzeglLH93I2vjKNFq5xUh9coFKzdzFdvLSQcCtP3xN6071q/vuqeA/bl7Uc+iFpxabFY2P9oczeNqH7+xpDUt7FYLOx/5I7fj4A/yISh97Nk7jIsNgsSETru0Z57P76ZrNzMJEWqJZOeFVOLf1dtJBQM075rG32FU0cfPvcZD1/yNGDMsVZKMfKmUzhj/Cl1PoeIcMtJ97L486WVyd2V4aT/8IO56umLEhJ3U/XsTdOZMfk9AtutwLU5bPQ7qQ83v/a/FEam1VfSt8arj8aU2LX62by+iLN3vaSitO9/HG4Hjyy8u16rVcPhMF+89g1zXvwCq83KwDFHcvDJB+gv2Ho6tc15bNm4Neq4zW5lVsmLjXILxeZKT3fUUmL+rEUxa9KEAiG+eP2beiV2q9XKkWccypFn6F164hHwxa6VE4kI4VAEe+PpedLqSM+K0UwlIlDTTeAObg5LikpZ+eNflBSVJiSu5qzPwP2xWKM/6rv26IwrRtVOrfGLK7ErpSYqpX5SSi1WSn2slErvGq5awvUd3ItIjO49u8PGocMOijoeDod56NKnOb39WK464lZObz+WKRc/RThc88pKrX7G3n8W2XlZlfP07U47nmw3/3tKb3bWVMV7xX6/iOwrIj2A2cAtJsSkNWL57fO4aNIoHC47NocNq82K0+1g2NWD2XW/zlHPf+Wut/h42ucEfEHKi70EfEHmvDCX6XfOSEh8IsLHz89l9O6XMTj7LP53+C38svD3hLSVLlp3zOe5FVMYffvpHDbsIEbcMIRnf5lC1x5dUh2aliCmDZ4qpW4AOolIrVMW9OBpcokIS79awTezvsOd4eLIkYfSYbfELpVf/9cG5r2xgHAozMEn96mx0NjQ/HMoKYzufsnMzWDm5mmmx/X6/73DixPeqDKN0ulxMnne7XXaJlDTUilps2KUUncCZwNbgSNEpKC21+jEnjwiwv3nPMqXMxbgLw9gsVqw2q1c+tAYjjv3qFSHxzG205AYK0yVRfFR8DVTZ8AEA0FOyR8TVexLKehz3P7cOXu8aW1pWiLUNbHX2hWjlPpEKbU0xr+TAETkRhHpCLwMXLqD84xVSi1SSi0qKKg192sm+eGTn/hyxgJ8ZX5EhHAoTMAb4JHLnqF4c+p3Duq6f+zugF17dDZ9WuPmf4qIdSEjAn8sXmVqW5qWSrUmdhE5WkS6x/j3TrWnTgdqXIEiIlNFpLeI9G7VKr1LxTYlc2vYL9Nqt7Lo4yUpiKiqS6aMwelxVk6RVBaF0+PkkiljTG+rRescgoFQzMfa7rKT6e1pWqrEOytmt+1+PBFYEV84mtnsDlvMeeUKhc2e+rrye/frxsPz7+SwYQfRsVs7Dht2EA99cyfdD97D9La+/3gJxLhit9osnJVmVRw1LR7xLlC6RynVDYgAqwE9fyrNDDi7Px8//0XU7kCRSIQ+A3ukKKqquuyzMze9mvil7c/f9nrMuutWm5V9D0u/Ko6a+SKRCB88/SlvPfgepVvLOfCEnpx922nkt2uZ6tBMFdcVu4icUtEts6+IDBaRdWYFppljzwN3Y/i1J+Fw2XG6HbgzXTg9Tm554yrcme5Uh5dUG9fEHtsRgfJic2u8p5PVy//m+mMnMihjJKe2OY+X7phBONQ81wk8fOkzPP6/51mzYh2F64v4eNpcLup5bVqMN5lJlxRoBs665VQGnH04333wI06Pk34n9SGzRUaqw0q6XfbZmZ+//CXquDvLRWZu03w/Nqwu4PK+N+KtKEHt9wZ49Z63+Gfleq6dVuNchyZp0z+FlWsmtgmHwpQXlzPr8Y8486ZhKYzOXLqkQDPRpnNrBl90LMeM6t8skzrAefeMjLFLkpPz7h6JxdI0PwpvTnqXgC9QZWjBXx5g7uvfsOmfwtQFlgJ/LF6FPcZm4AFfkJ/mLktBRInTNP+aG5FIJML3c5Yw9doXee3+d5rdhy2Z9urbjXs/voXuh+xBRo6Hznt35LrnL02L+fyJ8tuiP2JufO1w2vl7RfPqOW3dKZ9QjDEWi9VCu3ruF5DudFdMCoVDYW4adDdLv/kVX6kPh8vOixPe4NYZV9Pn2PQY2Gxq9u7XjcnzJqY6jKTp3L0TK75dSSRcNaEF/UHa7domRVGlRpfunejSvSMrf/yryped3WlnyBXHpzAy8+kr9hSa8+I8ln69onK3+YAviL/cz10jHiQUjD3fWtPq49SrBuNwVa237nDZ6XXMfuy0c/NbT3Ln++Ppdcx+2J02HC47rTrmMWHmNey8Z4dUh2YqfcWeQp+8+EXMxUORSIQVC3+n+yF6Cp4Wnw67t+Oej27moYufYtXSNdicdo4Z1Z8LHzg71aGlRHbLLO549wZKt5RRXuKlVYe8Jrlxi07sKVTTAiERwWrXvxrNHHv368aTi/+PgD+IzW5tsgPF9ZHZIqNJTyLQv+EUOu68o3FlRG904PI42b23rjSomcvhtOuk3kzo33IKHTbsIA4ddhBOtwO7044704Un282Et6/Dak39cn9N0xonvZl1Gvjr53isE9EAAAZLSURBVNUs/nwZ2XlZ9Du5D+4MV6pD0jQtDenNrBuRLvvsTJd9dk51GJqmNRG6K0bTNK2J0Yld0zStidGJXdM0rYnRiV3TNK2J0Yld0zStiTElsSulrlZKiVIq34zzaZqmaQ0Xd2JXSnUEBgBr4g9H0zRNi5cZV+yTgWuB5K900jRN06LEldiVUicC60RkiUnxaJqmaXGqdeWpUuoTIFZF/huB8cAxdWlIKTUWGAvQqVOneoSoaZqm1UeDa8UopfYBPgXKKw51AP4BDhCRf3f0Wl0rRtM0rf4SXitGRH4GWm/X4Cqgt4hsaug5NU3TtPjpeeyapmlNjGnVHUWks1nn0jRN0xpOX7FrWpoQEVKxP4LW9OjErmkptqVgKxOHT+J49xkc5zydm0+8h41/66EqreF0Yte0FAqHw1x56M18/fa3hAIhwqEI337wI5cdNB6/15/q8LRGSid2TUuhRR8uZvP6IsLBcOWxSDiCt8TLvDcWpDAyrTHTiV3TUmjNin8I+oJRx72lPlYt0+WXtIbRiV3TUqjz3h2wO+1Rx92ZLr0PrtZgOrFrWgr1HLAvrTvlY7NbK49ZbRYyWmRw2LCDUhiZ1pjpxK5pKWS1Wpk073b6n34wTrcDu9NOv5MP4JGFd+NwOVIdntZINbhWTDx0rRhN07T6q2utGH3Frmma1sToxK6lneLNJUwa+wRD8kZzSqsxPHrFs5SXeFMdlqY1GqbVitE0MwQDQS47aDwb1xQQqpjb/d7UOSz9egWPfnsPFou+FtG02uhPiZZWvp75LUUbtlQmdYCgP8S639az+LOlKYxM0xoPndi1tLLyx7/wlvqijgf9Qf78aXUKItK0xkcndi2ttN+tLa4MZ9Rxu8tO2112SkFEmtb46MSupZX+w/vhdDtQFlV5zGK1kJWbyYEn9ExhZJrWeOjErqUVd6abKd/cyd4H74HVZsFqs9Lz6H2Y8vUd2Ox6rF/T6iKuT4pS6jbgfKCg4tB4EXk/3qC05q1917ZM/uJ2/F4/Sim9AlPT6smMS6DJIvJ/JpxH06pwuqP72jVNq53uitE0TWtizEjslyqlflJKPauUyq3pSUqpsUqpRUqpRQUFBTU9TdM0TYtTrUXAlFKfAG1iPHQjsADYBAgwEWgrImNqa1QXAdM0Tau/uhYBq7WPXUSOrmODTwGz6/JcTdM0LXHi6opRSrXd7schgF7zrWmalmJx1WNXSr0I9MDoilkFXCAi6+vwugIglevD8zG6kLRo+r3ZMf3+1Ey/NzUz673ZWURa1faklGy0kWpKqUV16adqjvR7s2P6/amZfm9qluz3Rk931DRNa2J0Ytc0TWtimmtin5rqANKYfm92TL8/NdPvTc2S+t40yz52TdO0pqy5XrFrmqY1Wc02sSul7ldKragohzBTKdUi1TGlC6XUqUqpZUqpiFJKz3IAlFIDlVK/KqVWKqWuT3U86aSinMhGpZRex1KNUqqjUupzpdQvFZ+pK5LRbrNN7MAcoLuI7Av8BtyQ4njSyVJgKDAv1YGkA6WUFXgUOA7YCxihlNortVGllWnAwFQHkaZCwFUisidwEHBJMv52mm1iF5GPRSRU8eMCoEMq40knIvKLiPya6jjSyAHAShH5U0QCwKvASSmOKW2IyDygMNVxpCMRWS8iP1T8/xLgF6B9ottttom9mjHAB6kOQktb7YG/t/t5LUn4cGpNi1KqM7A/sDDRbTXpvcZ2VJlSRN6peM6NGLdLLycztlSry3ujVVIxjunpZFqdKaUy+f927hAloigMw/D7BW3uQINBXIPYtIiIYLOIwWqwuQuTwWIUQdAgGAYXYLBMETcwuACD9TfMBJuWmXs98z7tpP9LH4dz7j1wD5xV1ee05zVd7L+9TJnkGNgDtmvOvvv866udAsY79JUf62Xgo6Ms+meSLDAu9ZuqepjFzLk9ikmyA5wD+1X11XUe9dorsJZkNckicAg8dpxJ/0CSANfAe1VdzGru3BY7cAksAc9Jhkmuug7UF0kOkoyADeApyaDrTF2aXLKfAgPGl193VfXWbar+SHILvADrSUZJTrrO1CObwBGwNemZYZLdaQ/1z1NJasw879glqUkWuyQ1xmKXpMZY7JLUGItdkhpjsUtSYyx2SWqMxS5JjfkGLAxX97sp0qIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import make_classification\n",
    "data, target = make_classification(n_samples=100, n_features=2, n_classes=2, n_informative=1, n_redundant=0,\n",
    "                                   n_repeated=0, n_clusters_per_class=1, class_sep=2.0)\n",
    "plt.scatter(data[:,0],data[:,1],c=target)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#训练\n",
    "svm = HardMarginSVM()\n",
    "svm.fit(data, target)\n",
    "utils.plot_decision_function(data, target, svm, svm.support_vectors)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "那怕仅含有一个异常点，对硬间隔支持向量机的训练影响就很大，我们希望它能具有一定的包容能力，容忍哪些放错的点，但又不能容忍过度，我们可以引入变量$\\xi$和一个超参$C$来进行控制，原始的优化问题更新为如下：  \n",
    "\n",
    "$$\n",
    "\\min_{w,b,\\xi} \\frac{1}{2}w^Tw + C\\sum_{i=1}^N\\xi_i\\\\\n",
    "s.t.y_i(w^Tx_i+b)\\geq 1-\\xi_i,i=1,2,...,N\\\\\n",
    "\\xi_i\\geq0,i=1,2,...,N\n",
    "$$  \n",
    "\n",
    "这里$C$若越大，包容能力就越小，当取值很大时，就等价于硬间隔支持向量机，而$\\xi$使得支持向量的间隔可以调整，不必像硬间隔那样，严格等于1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Lagrange函数\n",
    "关于原问题的Lagrange函数：  \n",
    "\n",
    "$$\n",
    "L(w,b,\\xi,\\alpha,\\mu)=\\frac{1}{2}w^Tw+C\\sum_{i=1}^N\\xi_i+\\sum_{i=1}^N\\alpha_i(1-\\xi_i-y_i(w^Tx_i+b))-\\sum_{i=1}^N\\mu_i\\xi_i\\\\\n",
    "s.t.\\mu_i\\geq 0,\\alpha_i\\geq0,i=1,2,...,N\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 二.对偶问题\n",
    "对偶问题的求解过程我就省略了，与硬间隔类似，我这里就直接写最终结果：  \n",
    "\n",
    "$$\n",
    "\\min_{\\alpha} \\frac{1}{2}\\sum_{i=1}^N\\sum_{j=1}^N\\alpha_i\\alpha_jy_iy_jx_i^Tx_j-\\sum_{i=1}^N\\alpha_i\\\\\n",
    "s.t.\\sum_{i=1}^N\\alpha_iy_i=0,\\\\\n",
    "0\\leq\\alpha_i\\leq C,i=1,2,...,N\n",
    "$$  \n",
    "可以发现与硬间隔的不同是$\\alpha$加了一个上界的约束$C$  \n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 三.KKT条件\n",
    "这里就直接写KKT条件看原优化变量与拉格朗日乘子之间的关系：  \n",
    "\n",
    "$$\n",
    "\\frac{\\partial L}{\\partial w}=0\\Rightarrow w^*=\\sum_{i=1}^N\\alpha_i^*y_ix_i(关系1)\\\\\n",
    "\\frac{\\partial L}{\\partial b}=0\\Rightarrow \\alpha_i^*y_i=0(关系2)\\\\\n",
    "\\frac{\\partial L}{\\partial \\xi}=0\\Rightarrow C-\\alpha_i^*-\\mu_i^*=0(关系3)\\\\\n",
    "\\alpha_i^*(1-\\xi_i^*-y_i({w^*}^Tx_i+b^*))=0(关系4)\\\\\n",
    "\\mu_i^*\\xi_i^*=0(关系5)\\\\\n",
    "y_i({w^*}^Tx_i+b^*)-1-\\xi_i^*\\geq0(关系6)\\\\\n",
    "\\xi_i^*\\geq0(关系7)\\\\\n",
    "\\alpha_i^*\\geq0(关系8)\\\\\n",
    "\\mu_i^*\\geq0(关系9)\\\\\n",
    "$$  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 四.$w^*,b^*$的求解\n",
    "由KKT条件中的关系1，我们可以知道：  \n",
    "\n",
    "$$\n",
    "w^*=\\sum_{i=1}^N\\alpha_i^*y_ix_i\n",
    "$$  \n",
    "\n",
    "对于$b^*$的求解，我们可以取某点，其$0<\\alpha_k^*<C$，由关系3,4,5可以推得到：${w^*}^Tx_k+b^*=y_k$，所以：  \n",
    "\n",
    "$$\n",
    "b^*=y_k-{w^*}^Tx_k\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 五.SMO求$\\alpha^*$  \n",
    "\n",
    "好了，最终模型得求解落到了对$\\alpha^*$得求解上，求解过程与硬间隔一样，无非就是就是对$\\alpha$多加了一个约束：$\\alpha_i^*<=C$，具体而言需要对$\\alpha_2^{new}$的求解进行更新：  \n",
    "\n",
    "\n",
    "当$y_1\\neq y_2$时：  \n",
    "\n",
    "$$\n",
    "L=max(0,\\alpha_2^{old}-\\alpha_1^{old})\\\\\n",
    "H=min(C,C+\\alpha_2^{old}-\\alpha_1^{old})\n",
    "$$  \n",
    "\n",
    "当$y_1=y_2$时：  \n",
    "\n",
    "$$\n",
    "L=max(0,\\alpha_2^{old}+\\alpha_1^{old}-C)\\\\\n",
    "H=min(C,\\alpha_2^{old}+\\alpha_1^{old})\n",
    "$$  \n",
    "\n",
    "更新公式：  \n",
    "\n",
    "$$\n",
    "\\alpha_2^{new}=\\left\\{\\begin{matrix}\n",
    "H & \\alpha_2^{unc}> H\\\\ \n",
    "\\alpha_2^{unc} &  L \\leq \\alpha_2^{unc} \\leq H\\\\\n",
    "L & \\alpha_2^{unc}<L\n",
    "\\end{matrix}\\right.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 六.代码实现"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"\n",
    "软间隔支持向量机的smo实现，放到ml_models.svm模块中\n",
    "\"\"\"\n",
    "class SoftMarginSVM(object):\n",
    "    def __init__(self, epochs=100, C=1.0):\n",
    "        self.w = None\n",
    "        self.b = None\n",
    "        self.alpha = None\n",
    "        self.E = None\n",
    "        self.epochs = epochs\n",
    "        self.C = C\n",
    "        # 记录支持向量\n",
    "        self.support_vectors = None\n",
    "\n",
    "    def init_params(self, X, y):\n",
    "        \"\"\"\n",
    "        :param X: (n_samples,n_features)\n",
    "        :param y: (n_samples,) y_i\\in\\{0,1\\}\n",
    "        :return:\n",
    "        \"\"\"\n",
    "        n_samples, n_features = X.shape\n",
    "        self.w = np.zeros(n_features)\n",
    "        self.b = .0\n",
    "        self.alpha = np.zeros(n_samples)\n",
    "        self.E = np.zeros(n_samples)\n",
    "        # 初始化E\n",
    "        for i in range(0, n_samples):\n",
    "            self.E[i] = np.dot(self.w, X[i, :]) + self.b - y[i]\n",
    "\n",
    "    def _select_j(self, best_i):\n",
    "        \"\"\"\n",
    "        选择j\n",
    "        :param best_i:\n",
    "        :return:\n",
    "        \"\"\"\n",
    "        valid_j_list = [i for i in range(0, len(self.alpha)) if self.alpha[i] > 0 and i != best_i]\n",
    "        best_j = -1\n",
    "        # 优先选择使得|E_i-E_j|最大的j\n",
    "        if len(valid_j_list) > 0:\n",
    "            max_e = 0\n",
    "            for j in valid_j_list:\n",
    "                current_e = np.abs(self.E[best_i] - self.E[j])\n",
    "                if current_e > max_e:\n",
    "                    best_j = j\n",
    "                    max_e = current_e\n",
    "        else:\n",
    "            # 随机选择\n",
    "            l = list(range(len(self.alpha)))\n",
    "            seq = l[: best_i] + l[best_i + 1:]\n",
    "            best_j = random.choice(seq)\n",
    "        return best_j\n",
    "\n",
    "    def _meet_kkt(self, w, b, x_i, y_i, alpha_i):\n",
    "        \"\"\"\n",
    "        判断是否满足KKT条件\n",
    "\n",
    "        :param w:\n",
    "        :param b:\n",
    "        :param x_i:\n",
    "        :param y_i:\n",
    "        :return:\n",
    "        \"\"\"\n",
    "        if alpha_i < self.C:\n",
    "            return y_i * (np.dot(w, x_i) + b) >= 1\n",
    "        else:\n",
    "            return y_i * (np.dot(w, x_i) + b) <= 1\n",
    "\n",
    "    def fit(self, X, y2, show_train_process=False):\n",
    "        \"\"\"\n",
    "\n",
    "        :param X:\n",
    "        :param y2:\n",
    "        :param show_train_process: 显示训练过程\n",
    "        :return:\n",
    "        \"\"\"\n",
    "        y = copy.deepcopy(y2)\n",
    "        y[y == 0] = -1\n",
    "        # 初始化参数\n",
    "        self.init_params(X, y)\n",
    "        for _ in range(0, self.epochs):\n",
    "            if_all_match_kkt = True\n",
    "            for i in range(0, len(self.alpha)):\n",
    "                x_i = X[i, :]\n",
    "                y_i = y[i]\n",
    "                alpha_i_old = self.alpha[i]\n",
    "                E_i_old = self.E[i]\n",
    "                # 外层循环：选择违反KKT条件的点i\n",
    "                if not self._meet_kkt(self.w, self.b, x_i, y_i, alpha_i_old):\n",
    "                    if_all_match_kkt = False\n",
    "                    # 内层循环，选择使|Ei-Ej|最大的点j\n",
    "                    best_j = self._select_j(i)\n",
    "\n",
    "                    alpha_j_old = self.alpha[best_j]\n",
    "                    x_j = X[best_j, :]\n",
    "                    y_j = y[best_j]\n",
    "                    E_j_old = self.E[best_j]\n",
    "\n",
    "                    # 进行更新\n",
    "                    # 1.首先获取无裁剪的最优alpha_2\n",
    "                    eta = np.dot(x_i - x_j, x_i - x_j)\n",
    "                    # 如果x_i和x_j很接近，则跳过\n",
    "                    if eta < 1e-3:\n",
    "                        continue\n",
    "                    alpha_j_unc = alpha_j_old + y_j * (E_i_old - E_j_old) / eta\n",
    "                    # 2.裁剪并得到new alpha_2\n",
    "                    if y_i == y_j:\n",
    "                        L = max(0., alpha_i_old + alpha_j_old - self.C)\n",
    "                        H = min(self.C, alpha_i_old + alpha_j_old)\n",
    "                    else:\n",
    "                        L = max(0, alpha_j_old - alpha_i_old)\n",
    "                        H = min(self.C, self.C + alpha_j_old - alpha_i_old)\n",
    "\n",
    "                    if alpha_j_unc < L:\n",
    "                        alpha_j_new = L\n",
    "                    elif alpha_j_unc > H:\n",
    "                        alpha_j_new = H\n",
    "                    else:\n",
    "                        alpha_j_new = alpha_j_unc\n",
    "\n",
    "                    # 如果变化不够大则跳过\n",
    "                    if np.abs(alpha_j_new - alpha_j_old) < 1e-5:\n",
    "                        continue\n",
    "                    # 3.得到alpha_1_new\n",
    "                    alpha_i_new = alpha_i_old + y_i * y_j * (alpha_j_old - alpha_j_new)\n",
    "                    # 4.更新w\n",
    "                    self.w = self.w + (alpha_i_new - alpha_i_old) * y_i * x_i + (alpha_j_new - alpha_j_old) * y_j * x_j\n",
    "                    # 5.更新alpha_1,alpha_2\n",
    "                    self.alpha[i] = alpha_i_new\n",
    "                    self.alpha[best_j] = alpha_j_new\n",
    "                    # 6.更新b\n",
    "                    b_i_new = y_i - np.dot(self.w, x_i)\n",
    "                    b_j_new = y_j - np.dot(self.w, x_j)\n",
    "                    if self.C > alpha_i_new > 0:\n",
    "                        self.b = b_i_new\n",
    "                    elif self.C > alpha_j_new > 0:\n",
    "                        self.b = b_j_new\n",
    "                    else:\n",
    "                        self.b = (b_i_new + b_j_new) / 2.0\n",
    "                    # 7.更新E\n",
    "                    for k in range(0, len(self.E)):\n",
    "                        self.E[k] = np.dot(self.w, X[k, :]) + self.b - y[k]\n",
    "                    # 显示训练过程\n",
    "                    if show_train_process is True:\n",
    "                        utils.plot_decision_function(X, y2, self, [i, best_j])\n",
    "                        utils.plt.pause(0.1)\n",
    "                        utils.plt.clf()\n",
    "\n",
    "            # 如果所有的点都满足KKT条件，则中止\n",
    "            if if_all_match_kkt is True:\n",
    "                break\n",
    "        # 计算支持向量\n",
    "        self.support_vectors = np.where(self.alpha > 1e-3)[0]\n",
    "        # 显示最终结果\n",
    "        if show_train_process is True:\n",
    "            utils.plot_decision_function(X, y2, self, self.support_vectors)\n",
    "            utils.plt.show()\n",
    "\n",
    "    def get_params(self):\n",
    "        \"\"\"\n",
    "        输出原始的系数\n",
    "        :return: w\n",
    "        \"\"\"\n",
    "\n",
    "        return self.w, self.b\n",
    "\n",
    "    def predict_proba(self, x):\n",
    "        \"\"\"\n",
    "        :param x:ndarray格式数据: m x n\n",
    "        :return: m x 1\n",
    "        \"\"\"\n",
    "        return utils.sigmoid(x.dot(self.w) + self.b)\n",
    "\n",
    "    def predict(self, x):\n",
    "        \"\"\"\n",
    "        :param x:ndarray格式数据: m x n\n",
    "        :return: m x 1\n",
    "        \"\"\"\n",
    "        proba = self.predict_proba(x)\n",
    "        return (proba >= 0.5).astype(int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "svm = SoftMarginSVM(C=3.0)\n",
    "svm.fit(data, target)\n",
    "utils.plot_decision_function(data, target, svm, svm.support_vectors)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过控制`C`可以调节宽容度，设置一个大的`C`可以取得和硬间隔一样的效果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "svm = SoftMarginSVM(C=1000000)\n",
    "svm.fit(data, target)\n",
    "utils.plot_decision_function(data, target, svm, svm.support_vectors)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "有时，太过宽容也不一定好"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "svm = SoftMarginSVM(C=0.01)\n",
    "svm.fit(data, target)\n",
    "utils.plot_decision_function(data, target, svm, svm.support_vectors)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 七.支持向量\n",
    "软间隔支持向量机的支持向量复杂一些，因为对于$\\alpha>0$有许多种情况，如下图所示，大概可以分为4类：  \n",
    "\n",
    "（1）$0<\\alpha_i<C,\\xi_i=0$：位于间隔边界上；  \n",
    "（2）$\\alpha_i=C,0<\\xi_i<1$：分类正确，位于间隔边界与分离超平面之间；  \n",
    "（3）$\\alpha_i=C,\\xi_i=1$：位于分离超平面上；  \n",
    "（4）$\\alpha_i=C,\\xi_i>1$：位于错误分类的一侧"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![avatar](./source/06_软间隔的支持向量.png) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
